import inputNumber from '@/components/inputNumber/inputNumber'; // 替代el-input-number
import { CustomEnum } from '@/utils/getUtils';
import { generateHighlightNodeForSalePrice } from '@/utils/bizUtils';

// 加价率操作类型
export const OPE_TYPES = {
  Add: '1', // 新增
  Edit: '2', // 编辑
  Delete: '3', // 删除（停用）
}

// 区域加价率 - 编辑 - 操作类型下拉options
export const AREA_EDIT_OPT_OPTIONS = [
  { label: '编辑', value: '2' },
  { label: '停用', value: '3' }
]

// 加价率提交类型(单据类型)
export const COMMIT_TYPES = {
  Group: 'productMarkupRateGroup', // 集团加价率
  Area: 'productMarkupRateArea', // 区域加价率
}

// 待审核页面 - 审核状态枚举对象
export const auditStateEnums = new CustomEnum({
  Commit: ['COMMIT', '审核中'],
  Ok: ['OK', '审核通过'],
  Fail: ['FAIL', '审核未通过']
})

// 待审核页面 - 审核状态options
export const AUDIT_STATE_OPTIONS = auditStateEnums.options

// 待审核页面 - 审核状态values
export const AUDIT_STATE_VALUES = auditStateEnums.values

// 错误原因展示列
export const ERROR_MESSAE_COL = {
  title: '错误原因',
  key: 'errorMsg',
  width: 150,
  sortable: true,
  errorTip: true,
  notShowTip: true,
}

// 异常原因展示列
export const TIP_MESSAGE_COL = {
  title: '异常原因',
  key: 'tipMsg',
  width: 150,
  sortable: true,
  errorTip: true,
  notShowTip: true,
}

// 获取错误异常原因消息列
export const getMessageColumns = ({ hasErrorData, hasTipMsg } = {}) => {
  const messageColumns = []
  if (hasErrorData) messageColumns.push(ERROR_MESSAE_COL)
  if (hasTipMsg) messageColumns.push(TIP_MESSAGE_COL)
  return messageColumns
}

// 获取加价率输入框
export const getElInputNumer = (h, row, key, props) => (
  <inputNumber
    value={row[key]}
    size="mini"
    min={props?.min ?? 0}
    max={props?.max ?? 10}
    precision={2}
    controls={false}
    style="width: 80%;"
    onInput={val => { row[key] = val }}
  />
)

// 待审核页面 - 审核查询表单项集合
export const AUDIT_FORM_ITEMS = [
  {
    prop: 'recordNo',
    label: '单据号',
    type: 'input'
  },
  {
    prop: 'commitState',
    label: '审核状态',
    type: 'select',
    clearable: true,
    options: AUDIT_STATE_OPTIONS
  },
  {
    prop: 'pusherName',
    label: '提交人',
    type: 'input'
  },
  {
    prop: 'pusherDeptName',
    label: '提交部门',
    type: 'input'
  },
]

// 待审核页面 - 审核单据列表
export const AUDIT_TABLE_COLUMNS = [
  {
    title: '单据号',
    key: 'recordNo'
  },
  {
    title: '提交人',
    key: 'pusherName'
  },
  {
    title: '提交部门',
    key: 'pusherDeptName'
  },
  {
    title: '提交时间',
    key: 'pushTime'
  },
  {
    title: '单据状态',
    key: 'commitStateStr'
  }
]

// 待审核页面 - 预览表列
export const PREVIEW_TABLE_COLUMNS = [
  {
    title: '品类',
    key: 'categoryPath'
  },
  {
    title: '商品名称',
    key: 'productName'
  },
  {
    title: 'SPU编码',
    key: 'spuNo'
  },
  {
    title: 'SKU编码',
    key: 'skuNo'
  },
  {
    title: '规格',
    key: 'spec'
  },
  {
    title: '计量单位',
    key: 'unit'
  },
  {
    title: '品牌',
    key: 'brandName'
  },
  {
    title: '系列',
    key: 'series'
  },
  {
    title: '是否畅销',
    key: 'sellWellFlagStr'
  },
  {
    title: '省',
    key: 'provinceName'
  },
  {
    title: '城市',
    key: 'cityName'
  },
  {
    title: '区域',
    key: 'areaName'
  },
  {
    title: '成本价',
    key: 'costPrice'
  },
  {
    title: '售价',
    children: [
      { title: '原值', key: 'oldSalePrice' },
      {
        title: '现值',
        render: (h, { row }) => generateHighlightNodeForSalePrice(h, row.oldSalePrice, row.salePrice)
      }
    ]
  }
]
